package br.com.cqipac.service;

import java.util.Date;
import java.util.List;

import br.com.cqipac.dao.DaoFactory;
import br.com.cqipac.dao.RemoteDao;
import br.com.cqipac.to.Funcionario;
import br.com.cqipac.to.Setor;
import br.com.cqipac.to.SetorFuncionario;

public class SetorService {
	
	
	public List<Setor> listarSetores() throws Exception {
		RemoteDao setorDao;
		setorDao = DaoFactory.getDao("SetorDao");
		List<Setor> setores = setorDao.list();
		return setores;
	}
	
	public Setor buscaSetor(int codSetor) throws Exception {
		
		RemoteDao setorDao;
		setorDao = DaoFactory.getDao("SetorDao");
		return (Setor) setorDao.findById(codSetor);

	}
	
	public List<Setor> listarSetores(Setor setor) throws Exception {
		RemoteDao setorDao;
		setorDao = DaoFactory.getDao("SetorDao");
		List<Setor> setores = setorDao.list(setor,0);
		return setores;
	}	
	
	public void inserirSetor(Setor setor) throws Exception {
		RemoteDao funcionarioDao;
		funcionarioDao = DaoFactory.getDao("FuncionarioDao");
		Funcionario f = (Funcionario) funcionarioDao.findById(1);
		this.inserirSetor(setor, f, f);
	}

	public void inserirSetor(Setor setor, Funcionario funcionario, Funcionario funcionarioInclusao) throws Exception {

		setor.setFuncionarioByCodFuncionarioInclusao(funcionarioInclusao);
		setor.setFuncionarioByCodFuncionarioResponsavel(funcionario);
		setor.setDtInclusao(new Date(new Date().getTime()));
		RemoteDao setorDao;
		
		setorDao = DaoFactory.getDao("SetorDao");
		setorDao.persist(setor);
	}
	
	public Setor listarUnicoSetor(Setor setor) throws Exception {
		
		return setor;
		
	}
	
	public void editarSetor(Setor setor, Funcionario funcionario, Funcionario funcionarioInclusao) throws Exception {

		setor.setFuncionarioByCodFuncionarioInclusao(funcionarioInclusao);
		setor.setFuncionarioByCodFuncionarioResponsavel(funcionario);
		setor.setDtInclusao(new Date(new Date().getTime()));
		RemoteDao setorDao;
		
		setorDao = DaoFactory.getDao("SetorDao");
		setorDao.merge(setor);
	}

	public void excluiSetor(Setor setor) throws Exception {
		RemoteDao setorDao;
		setorDao = DaoFactory.getDao("SetorDao");
		setorDao.remove(setor);
	}
}
